/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tresenraya;

import static utilidades.constantes.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Helena
 */


public class JugadorHumanoTUI extends Jugador{

    private boolean deseoTerminar;

    public JugadorHumanoTUI()
    {
        deseoTerminar = false;
    }

    public int obtenerTurno()
    {
        return JUGADOR_1;
    }

    public void realizarJugada()
    {
        boolean jugadaCorrecta = false;
        deseoTerminar = false;

        while (!jugadaCorrecta && !deseoTerminar)
        {
            if (getPosicion().faseActual() == PONER)
            try {
                BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
                System.out.println("INTRODUZCA LUGAR DONDE PONER LA FICHA");
                System.out.println("Fila (0 para terminar el juego): ");
                int fila = Integer.parseInt(teclado.readLine());
                deseoTerminar = fila == 0;
                if (!deseoTerminar)
                {
                    System.out.println("Columna: ");
                    int columna = Integer.parseInt(teclado.readLine());
                    jugadaCorrecta = getPosicion().preCondicionPonerFicha(fila-1, columna-1);
                    if (jugadaCorrecta) getPosicion().ponerFicha(fila-1, columna-1);
                    else System.out.println("¡Jugada incorrecta!");
                }
            } catch (IOException ex) {
                Logger.getLogger(JugadorHumanoTUI.class.getName()).log(Level.SEVERE, null, ex);
            }
            if (getPosicion().faseActual() == MOVER)
            try {
                BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
                System.out.println("INTRODUZCA ORIGEN DE FICHA A MOVER");
                System.out.println("Fila origen (0 para terminar el juego): ");
                int filaOrigen = Integer.parseInt(teclado.readLine());
                deseoTerminar = filaOrigen == 0;
                if (!deseoTerminar)
                {
                    System.out.println("Columna origen: ");
                    int columnaOrigen = Integer.parseInt(teclado.readLine());
                    System.out.println("INTRODUZCA DESTINO DE FICHA");
                    System.out.println("Fila destino: ");
                    int filaDestino = Integer.parseInt(teclado.readLine());
                    System.out.println("Columna destino: ");
                    int columnaDestino = Integer.parseInt(teclado.readLine());
                    jugadaCorrecta = getPosicion().preCondicionMoverFicha(filaOrigen-1, columnaOrigen-1,
                                                                 filaDestino-1, columnaDestino-1);
                    if (jugadaCorrecta) getPosicion().moverFicha(filaOrigen-1, columnaOrigen-1,
                                                            filaDestino-1, columnaDestino-1);
                }
            } catch (IOException ex) {
                Logger.getLogger(JugadorHumanoTUI.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    /**
     * @return the deseoTerminar
     */
    public boolean isDeseoTerminar() {
        return deseoTerminar;
    }
}
